Towards a Fully Abstract Semantics for Object-Oriented Program Components
نویسندگان
چکیده
Behavioral semantics for components abstract from implementation details and describe the components’ behavior independent of the components’ implementations. It provides an important foundation for behavioral substitutability and interface specifications. In this paper, we develop and investigate a behavioral semantics for a sequential class-based object-oriented language with aliasing, subclassing, and dynamic dispatch. The implementation of a component includes an owner class C and the classes and interfaces used by C. A component instance consists of a dynamically evolving set of objects with a clear boundary to the environment. Behavioral semantics is expressed in terms of the messages crossing the boundary. The types of objects that can cross a boundary are described by the component signature. We develop a light-weight object-oriented component model and discuss substitutability. We present an object-oriented core language supporting this model and define its operational semantics in a standard way. As a central step towards a behavioral semantics, we develop a message semantics that assigns to each component its part of the heap and stack, localizes object creation to components, and treats inter-component communication by messages. We show that the message semantics is equivalent to the standard semantics. By abstracting from the component states, we obtain a behavioral semantics. Component behaviors are defined as partial functions from incoming messages to outgoing messages. The semantic domain of these behaviors is independent of possible component environments and implementations. We proof that the behavioral semantics is fully abstract with respect to the operational semantics.
منابع مشابه
Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملSecure Compilation of Object-Oriented Components to Protected Module Architectures – Extended Version
A fully abstract compilation scheme prevents the security features of the high-level language from being bypassed by an attacker operating at a particular lower level. This paper presents a fully abstract compilation scheme from a realistic object-oriented language with dynamic memory allocation, cross-package inheritance, exceptions and inner classes to untyped machine code. Full abstraction o...
متن کاملFully Abstract Behavioral Types for UML Components
We present a fully abstract trace semantics for UML components. This semantics is formalized in terms of a new notion of abstract behavioral types for components, providing a description of the component externally observable behavior inspired by UML sequence diagrams. Such a description abstracts from the actual implementation given, for example, by UML state-machines. Our full abstraction res...
متن کاملTowards agent-oriented model-driven architecture
Received: 30 November 2006 Revised: 25 April 2007 Accepted: 27 July 2007 Abstract Model-Driven Architecture (MDA) supports the transformation from reusable models to executable software. Business representations, however, cannot be fully and explicitly represented in such models for direct transformation into running systems. Thus, once business needs change, the language abstractions used by M...
متن کاملABS-NET: Fully Decentralized Runtime Adaptation for Distributed Objects
We present a formalized, fully decentralized runtime semantics for a core subset of ABS, a language and framework for modelling distributed object-oriented systems. The semantics incorporates an abstract graph representation of a network infrastructure, with network endpoints represented as graph nodes, and links as arcs with buffers, corresponding to OSI layer 2 interconnects. The key problem ...
متن کامل